package edu.ucsur.tp.libreriaelsaber.web.servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import edu.ucsur.tp.libreriaelsaber.beans.UsuarioBean;
import edu.ucsur.tp.libreriaelsaber.dao.UsuarioDAO;
import edu.ucsur.tp.libreriaelsaber.dao.factories.DAOFactory;

public class ListadoUsuariosServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;
    private static DAOFactory daoFactory = DAOFactory.getInstance(DAOFactory.MY_SQL);

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //Obteniendo la lista de usuarios (en una coleccion)
        //(luego esto será reemplazado por base de datos)
        UsuarioDAO usuarioDao = daoFactory.getUsuario();
        List<UsuarioBean> listaUsuarios = usuarioDao.getListaUsuariosPorFiltros("", "");
        //Guardar en una variable de request
        request.setAttribute("Lista de Usuarios: ", listaUsuarios);
        //Invocar al JSP que muestra el listado
        RequestDispatcher dispatcher = request.getRequestDispatcher("/listado_usuarios.jsp");
        dispatcher.forward(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String accion = request.getParameter("accion");
        if (accion != null) {
            if (accion.equals("nuevo")) {
                request.setAttribute("tituloFormUsuario", "Usuario : Nuevo Registro");
                RequestDispatcher dispatcher = request.getRequestDispatcher("/form_usuario.jsp");
                dispatcher.forward(request, response);
            } else if (accion.equals("editar")) {
                request.setAttribute("tituloFormUsuario", "Usuario : Editar Registro");
                String codigoUsuario = request.getParameter("codigoUsuario");
                request.getSession().setAttribute("LibreriaElSaber_Usuario_Key", codigoUsuario);
                //RequestDispatcher dispatcher = request.getRequestDispatcher("/formUsuarioUrl");
                //dispatcher.forward(request, response);
                response.sendRedirect("formUsuarioUrl");
            } else if (accion.equals("eliminar")) {
                //Accion: ELIMINAR REGISTRO
                String codigoUsuario = request.getParameter("codigoUsuario");
                //Ejecutar la eliminacion del registro (lista estática)
                //(luego esto será reemplazado por base de datos)
                UsuarioDAO usuarioDao = daoFactory.getUsuario();
                usuarioDao.eliminar(codigoUsuario);
                //Refrescar la lista
                doGet(request, response);
            }
        }
    }
}
